package modelo;

import java.sql.ResultSet;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class OrdenDAO {

	public OrdenDAO() {
		super();
	}

	public void registrarOrden(Orden orden) {
		String tiraSQL = "INSERT INTO orden "+
		 				 "(codigoorden, codigocliente, fecha, totalpagar, status) "+
		 				 "VALUES ("+
		 				 "'"+orden.getCodigoorden()+"', '"+orden.getCodigocliente()+
		 				 "','"+orden.getFecha()+"',"+orden.getTotalpagar()+","+orden.getStatus()+" )";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Producto> listadoVentasPorCantidad() {
		List<Producto> productos = new ArrayList<Producto>();
		String tiraSQL = "SELECT p.codigoproducto, p.descripcion, p.precio, d.cantidad FROM producto as p, detalleorden as d where p.codigoproducto=d.codigoproducto order by d.cantidad asc";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigoproducto = resultSet.getString("codigoproducto");
				String descripcion = resultSet.getString("descripcion");
				int cantidad = resultSet.getInt("cantidad");
				
				Producto producto = new Producto(codigoproducto, descripcion, "" , 0, cantidad);
				productos.add(producto);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return productos;
	}
	
	public List<Producto> listadoVentasPorMonto() {
		List<Producto> productos = new ArrayList<Producto>();
		String tiraSQL = "SELECT p.codigoproducto, p.descripcion, p.precio, d.cantidad FROM producto as p, detalleorden as d where p.codigoproducto=d.codigoproducto order by p.precio desc";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigoproducto = resultSet.getString("codigoproducto");
				String descripcion = resultSet.getString("descripcion");
				int cantidad = resultSet.getInt("cantidad");
				float precio = resultSet.getFloat("precio");
				
				float monto =0;
				monto=cantidad*precio;
				
				Producto producto = new Producto(codigoproducto, descripcion, "" , monto, 0);
				productos.add(producto);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return productos;
	}
	
	public int numeroOrden()
	{
		int numero=0;
	    String tsql="Select count(codigoorden) as Cuantos from orden";
	    ResultSet resultSet = Conexion.consultar(tsql);		
	    try
	    {
	    	if(resultSet.next())
	        {
	           numero=resultSet.getInt("Cuantos");
	        } //fin del if
	    } //fin del try
	    catch(Exception e)
	    {
	    	e.printStackTrace();
	    }
	    return numero+1;
	}

}